
import java.util.Arrays;

public class MyStack implements IStack{

    public int[] elem;
    public MyStack(int x) {
        //创建一个队列（数组）来存放元素，这里默认存放的是int类型的数据
        this.elem = new int[x];
    }

    //实时记录队列中的元素个数
    public int usedSize;

    @Override
    public void push(int data) {
        if(usedSize == elem.length) {
            //扩容
            Arrays.copyOf(elem, usedSize * 2);
        }
        this.elem[usedSize] = data;
        usedSize++;
    }

    @Override
    public int pop() {
        if(usedSize == 0) {
            throw new EmptyException("栈空了");
        }
        int ret = elem[usedSize - 1];
        usedSize--;
        return ret;
    }

    @Override
    public int peek() {
        return elem[usedSize - 1];
    }

    @Override
    public int size() {
        return usedSize;
    }

    @Override
    public boolean empty() {
        if(usedSize == 0)
        {
            return true;
        }
        return false;
    }
}
